import math  # 新增导入

class Calculator:
    # 夹角公式上倾井 phi 和 下倾井 phi
    def calculate_angle_up_phi(self, input1, input2, input4):
        return (90 + input4) - (input1 + input2) / 2

    def calculate_angle_down_phi(self, input1, input2, input4):
        return (90 - input4) - (input1 + input2) / 2

    # 正弦值
    def calculate_sine(self, phi):
        return math.sin(math.radians(phi))
    # 斜深
    def calculate_depth_oblique(self, input3, sin):
        return input3 / sin
    # 狗腿角度
    def calculate_dogleg_degree(self, input2, input1, depth_oblique):
        return 30 * (input2 - input1) / depth_oblique

    # 新增 vertical_depth_phi 计算方法
    def calculate_vertical_depth_phi(self, input_field_1, input_field_2):
        angle_rad = math.radians(input_field_2)
        return input_field_1 / math.cos(angle_rad)

    # 新增 vertical_depth_sin 计算方法
    def calculate_vertical_depth_sin(self, input_field_4, input_field_2):
        angle_rad = math.radians(input_field_2)
        return input_field_4 * math.tan(angle_rad)

    # 新增 up_vertical_depth 计算方法
    def calculate_up_vertical_depth(self, input_field_3, vertical_depth_phi, vertical_depth_sin):
        return input_field_3 + vertical_depth_phi - vertical_depth_sin

    # 新增 down_vertical_depth 计算方法
    def calculate_down_vertical_depth(self, input_field_3, vertical_depth_phi, vertical_depth_sin):
        return input_field_3 + vertical_depth_phi + vertical_depth_sin

    # 新增剩余视平移计算方法
    def calculate_remaining_gaze_pans_new(self, input1, input2, depth_oblique):
        angle = 90 - (input1 + input2)/2
        angle_rad = math.fabs(angle) * math.pi / 180
        cos_val = math.cos(angle_rad)
        return cos_val * depth_oblique
    #


